﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using Entidades.Sistema.Venta;

namespace Modelo.Sistema.Venta
{
    public class CatalogoCondicionIva
    {
        private List<CondicionIva> Col_condicioniva;

        public CatalogoCondicionIva()
        {
            Col_condicioniva = Mapping.Sistema.Venta.MappingCondicionIva.ConsultarCondicionIvaes();
        }


        public ReadOnlyCollection<CondicionIva> ListarCondicionIva()
        {
            return Col_condicioniva.AsReadOnly();
        }

        public bool AgregarCondicionIva(CondicionIva oCondicionIva)
        {
            Col_condicioniva.Add(oCondicionIva);
            return Mapping.Sistema.Venta.MappingCondicionIva.AgregarCondicionIva(oCondicionIva);
        }

        public bool EliminarCondicionIva(CondicionIva oCondicionIva)
        {
            Col_condicioniva.Remove(oCondicionIva);
            return Mapping.Sistema.Venta.MappingCondicionIva.EliminarCondicionIva(oCondicionIva);
        }
        public void ModificarCondicionIva(CondicionIva oCondicionIva)
        {
            Mapping.Sistema.Venta.MappingCondicionIva.ModificarCondicionIva(oCondicionIva);
            Col_condicioniva.Remove(oCondicionIva);
            Col_condicioniva.Add(oCondicionIva);
        }
        public CondicionIva BuscarCondicionIva(int idIva)
        {
            return this.Col_condicioniva.Find(unid => unid.IdCondicionIva == idIva);
        }
        public bool ValidarExistencia(CondicionIva oCondicionIva)
        {
            if (this.Col_condicioniva.Count(unid => unid.IdCondicionIva == oCondicionIva.IdCondicionIva) == 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


        public Int32 GetMayor()
        {
            if (Col_condicioniva.Count == 0) return 0;

            Int32 maxIdCondicionIva =
                (from und in Col_condicioniva
                 select und.IdCondicionIva)
                .Max();

            return maxIdCondicionIva;
        }
    }
}
